//package com.shop.cereshop.app.job;
//
//
//import cn.hutool.core.collection.CollectionUtil;
//import com.shop.cereshop.app.dao.collect.CereBuyerCollectDAO;
//import com.shop.cereshop.app.dao.recommend.CereRecommendLikesDAO;
//import com.shop.cereshop.app.dao.recommend.CereRecommendTrendsDAO;
//import com.shop.cereshop.app.dao.recommend.CereRecommendTypeRelationDAO;
//import com.shop.cereshop.app.service.recommend.CereRecommendCommentService;
//import com.xxl.job.core.handler.annotation.XxlJob;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.scheduling.annotation.Scheduled;
//import org.springframework.stereotype.Component;
//
//import java.util.List;
//import java.util.concurrent.CompletableFuture;
//
//@Component
//
//public class RedundantDataJob {
//
//    @Autowired
//    private CereRecommendTrendsDAO cereRecommendTrendsDAO;
//
//    @Autowired
//    private CereRecommendLikesDAO cereRecommendLikesDAO;
//
//    @Autowired
//    private CereBuyerCollectDAO cereBuyerCollectDAO;
//
//    @Autowired
//    private CereRecommendTypeRelationDAO cereRecommendTypeRelationDAO;
//
//    @Autowired
//    private CereRecommendCommentService cereRecommendCommentService;
//
//    /**
//     * 删除冗余数据
//     */
//    @XxlJob("deleteRedundantDataJob")
//    @Scheduled(fixedDelay = 1000 * 60) // 每分钟执行一次
//    public void deleteRedundantData() {
//        System.out.println("开始删除冗余数据");
//
//        try {
//            // 获取需要清理的冗余数据ID列表
//            List<Long> redundantRecommendIds = getRedundantRecommendIds();
//
//            if (CollectionUtil.isNotEmpty(redundantRecommendIds)) {
//                for (Long recommendId : redundantRecommendIds) {
//                    // 删除动态主表数据
//
//
//                    // 并行删除关联数据
//                    CompletableFuture<Void> likesFuture = CompletableFuture.runAsync(() ->
//                            cereRecommendLikesDAO.deleteByRecommendId(recommendId));
//
//                    CompletableFuture<Void> collectFuture = CompletableFuture.runAsync(() ->
//                            cereBuyerCollectDAO.deleteByRecommendId(recommendId));
//
//                    CompletableFuture<Void> typeFuture = CompletableFuture.runAsync(() ->
//                            cereRecommendTypeRelationDAO.deleteByRecommendId(recommendId));
//
//                    CompletableFuture<Void> commentFuture = CompletableFuture.runAsync(() ->
//                            cereRecommendCommentService.removeByRecommendId(recommendId));
//
//                    // 等待所有删除操作完成
//                    CompletableFuture.allOf(likesFuture, collectFuture, typeFuture, commentFuture).join();
//                }
//            }
//        } catch (Exception e) {
//            System.out.println("删除冗余数据失败: ，" + e);
//        }
//
//        System.out.println("删除冗余数据完成");
//    }
//
//    /**
//     * 获取需要清理的冗余数据ID
//     * 可以根据业务需求定义不同的判断标准
//     */
//    private List<Long> getRedundantRecommendIds() {
//        List<Long> recommendIds = cereRecommendTrendsDAO.selectRecommendIds();
////        查询收藏表中的数据是否冗余
//        List<Long> collectIds = cereBuyerCollectDAO.selectCollectIds();
////      查询点赞表中的数据是否冗余
//        List<Long> recommendLikesIds = cereRecommendLikesDAO.selectLikesIds();
////      查询关联的话题是否多余
//        List<Long> recommendTypeIds = cereRecommendTypeRelationDAO.selectRecommendTypeIds();
//
//
//        return collectIds;
//
//    }
//}
//
